//方法一：暴力统计
int cmp(const void* pa, const void* pb){
    return (*(int*)pa - *(int*)pb);
}
int countPairs(int* nums, int numsSize, int target) {
    qsort(nums, numsSize, sizeof(int), cmp);
    int count = 0;
    for(int i = 0; i < numsSize - 1; i++){
        int j = i + 1;
        while(j < numsSize && nums[i] + nums[j++] < target){
            count++;
        }
    }
    return count;
}

//方法二：前后双指针
int cmp(const void* pa, const void* pb){
    return (*(int*)pa - *(int*)pb);
}
int countPairs(int* nums, int numsSize, int target) {
    qsort(nums, numsSize, sizeof(int), cmp);
    int count = 0;
    int i = 0,j = numsSize - 1;
    while(i < j){
        if(nums[i] + nums[j] < target){
            count += j - i;
            i++;
        }else{
            j--;
        }
    }
    return count;
}

/*给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ，请你返回满足 0 <= i < j < n 且 nums[i] + nums[j] < target 的下标对 (i, j) 的数目。*/